home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / SNIP9_91.ARJ / SOUND.H < prev    next >
C/C++ Source or Header  |  1991-09-12  |  4KB  |  175 lines

  1. /*
  2. **  SOUND.H
  3. */
  4.  
  5. #if defined(__ZTC__)
  6.  #include <int.h>
  7.  #undef int_on
  8.  #undef int_off
  9. #elif defined(__TURBOC__)
  10.  #define int_on         enable
  11.  #define int_off        disable
  12.  #ifndef inp
  13.   #define inp           inportb
  14.  #endif
  15.  #ifndef outp
  16.   #define outp          outportb
  17.  #endif
  18. #else /* assume MSC/QC */
  19.  #include <conio.h>
  20.  #define int_on         _enable
  21.  #define int_off        _disable
  22.  #define getvect        _dos_getvect
  23.  #define setvect        _dos_setvect
  24. #endif
  25.  
  26. /* defines for mktone() update parameter: */
  27.  
  28. #define ON 0          /* turn the speaker on */
  29. #define UPDATE 1      /* sound is on, just change freq */
  30. #define TOGGLE 2      /* for delay use, turn on, then off */
  31.  
  32. /* port equates */
  33.  
  34. #define SCNTRL 0x61   /* sound control port */
  35. #define SOUNDON 0x03  /* bit mask to enable speaker */
  36. #define SOUNDOFF 0xfc /* bit mask to disable speaker */
  37. #define C8253 0x43    /* port address to control 8253 */
  38. #define SETIMER 0xb6  /* tell 8253 to expect freq data next */
  39. #define F8253 0x42    /* frequency address on 8253 */
  40.  
  41. /* frequency equates (muscical scale) */
  42. /* digit in label is octave number, S indicates Sharp (#) */
  43.  
  44. #define C0      36489
  45. #define CS0     34445
  46. #define D0      32512
  47. #define DS0     30673
  48. #define E0      28961
  49. #define F0      27329
  50. #define FS0     25804
  51. #define G0      24351
  52. #define GS0     22981
  53. #define A0      21694
  54. #define AS0     20473
  55. #define B0      19326
  56.  
  57. #define C1      18244
  58. #define CS1     17218
  59. #define D1      16251
  60. #define DS1     15340
  61. #define E1      14480
  62. #define F1      13668
  63. #define FS1     12899
  64. #define G1      12175
  65. #define GS1     11493
  66. #define A1      10847
  67. #define AS1     10238
  68. #define B1      9663
  69.  
  70. #define C2      9121
  71. #define CS2     8609
  72. #define D2      8126
  73. #define DS2     7670
  74. #define E2      7239
  75. #define F2      6833
  76. #define FS2     6450
  77. #define G2      6088
  78. #define GS2     5746
  79. #define A2      5424
  80. #define AS2     5119
  81. #define B2      4832
  82.  
  83. #define C3      4561
  84. #define CS3     4305
  85. #define D3      4063
  86. #define DS3     3835
  87. #define E3      3620
  88. #define F3      3417
  89. #define FS3     3225
  90. #define G3      3044
  91. #define GS3     2873
  92. #define A3      2712
  93. #define AS3     2560
  94. #define B3      2416
  95.  
  96. #define C4      2280
  97. #define CS4     2152
  98. #define D4      2032
  99. #define DS4     1917
  100. #define E4      1810
  101. #define F4      1708
  102. #define FS4     1612
  103. #define G4      1522
  104. #define GS4     1437
  105. #define A4      1356
  106. #define AS4     1280
  107. #define B4      1210
  108.  
  109. #define C5      1140
  110. #define CS5     1076
  111. #define D5      1016
  112. #define DS5     959
  113. #define E5      905
  114. #define F5      854
  115. #define FS5     806
  116. #define G5      761
  117. #define GS5     718
  118. #define A5      678
  119. #define AS5     640
  120. #define B5      604
  121.  
  122. #define C6      570
  123. #define CS6     538
  124. #define D6      508
  125. #define DS6     479
  126. #define E6      449
  127. #define F6      427
  128. #define FS6     403
  129. #define G6      380
  130. #define GS6     359
  131. #define A6      339
  132. #define AS6     320
  133. #define B6      302
  134.  
  135. #define C7      285
  136. #define CS7     269
  137. #define D7      254
  138. #define DS7     240
  139. #define E7      226
  140. #define F7      214
  141. #define FS7     202
  142. #define G7      190
  143. #define GS7     180
  144. #define A7      169
  145. #define AS7     160
  146. #define B7      151
  147.  
  148. #define C8      143
  149.  
  150. #define REST    0
  151.  
  152. typedef struct
  153. {
  154.         unsigned int      freq;
  155.         unsigned int      duration;
  156. } NOTE;
  157.  
  158. #if __cplusplus
  159.  extern "C" {
  160. #endif
  161.  
  162. void  mktone(int, int, unsigned),
  163.       dosound(int),
  164.       soundon(void),
  165.       soundoff(void),
  166.       playb_close(void);
  167.  
  168. int   playb_note(unsigned, unsigned);
  169.  
  170. NOTE *playb_open(unsigned);
  171.  
  172. #if __cplusplus
  173.  }
  174. #endif
  175.